#include "CStringReader.h"

#include <string>
#include <string.h>
namespace lampe{
namespace stream{

CStringReader::CStringReader(String text){
    data=text;
    pos=0;
}

CStringReader::~CStringReader(){
    data="";
}

u32 CStringReader::read(void*buffer, u32 ss){
    if (eof())
        return 0;
	u32 s=ss;
    if (position()+s>size())
        s=size()-position();
    if (s>0)
        memcpy(buffer,&data[position()],s);
    position(position()+s);
    return s;
}

void CStringReader::position(u32 p){
    if (p>size())
        p=size();
    else
        pos=p;
}

u32 CStringReader::size(){
    return data.length();
}

u32 CStringReader::position(){
    return pos;
}

bool CStringReader::eof(){
    return pos>=size();
}

extern IStringReader*createStringReader(lampe::String text){
    return new CStringReader(text);
}

}//namespace stream
}//namespace lampe
